home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / ghost / gs403src_gs.lha / gs4.03 / gsroptab.c < prev    next >
C/C++ Source or Header  |  1995-09-02  |  17KB  |  338 lines

  1. /* Copyright (C) 1995 Aladdin Enterprises.  All rights reserved.
  2.   
  3.   This file is part of Aladdin Ghostscript.
  4.   
  5.   Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  6.   or distributor accepts any responsibility for the consequences of using it,
  7.   or for whether it serves any particular purpose or works at all, unless he
  8.   or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  9.   License (the "License") for full details.
  10.   
  11.   Every copy of Aladdin Ghostscript must include a copy of the License,
  12.   normally in a plain ASCII text file named PUBLIC.  The License grants you
  13.   the right to copy, modify and redistribute Aladdin Ghostscript, but only
  14.   under certain conditions described in the License.  Among other things, the
  15.   License requires that the copyright notice and this notice be preserved on
  16.   all copies.
  17. */
  18.  
  19. /* gsroptab.c */
  20. /* Table of RasterOp procedures */
  21. #include "stdpre.h"
  22. #include "gsropt.h"
  23.  
  24. /*
  25.  * The H-P documentation (probably copied from Microsoft documentation)
  26.  * specifies RasterOp algorithms using reverse Polish notation, with
  27.  *   a = AND, o = OR, n = NOT, x = XOR
  28.  * We can use preprocessor macros to transcribe these algorithms almost
  29.  * literally into C code.
  30.  */
  31.  
  32. #ifdef __PROTOTYPES__
  33. #  define rop_proc(pname)\
  34. private rop_operand pname(rop_operand D, rop_operand S, rop_operand T)
  35. #else
  36. #  define rop_proc(pname)\
  37. private rop_operand pname(D,S,T) rop_operand D; rop_operand S; rop_operand T;
  38. #endif
  39. #define r return
  40.  
  41. #define a(u,v) (u&v)
  42. #define o(u,v) (u|v)
  43. #define x(u,v) (u^v)
  44.  
  45. rop_proc(rop0) { r 0; }    /* 0 */
  46. rop_proc(rop1) { r ~(D | (S | T)); }    /* DTSoon */
  47. rop_proc(rop2) { r D & (~(S | T)); }    /* DTSona */
  48. rop_proc(rop3) { r ~(S | T); }    /* TSon */
  49. rop_proc(rop4) { r S & (~(D | T)); }    /* SDTona */
  50. rop_proc(rop5) { r ~(D | T); }    /* DTon */
  51. rop_proc(rop6) { r ~(T | (~(D ^ S))); }    /* TDSxnon */
  52. rop_proc(rop7) { r ~(T | (D & S)); }    /* TDSaon */
  53. rop_proc(rop8) { r S & (D & ~T); }    /* SDTnaa */
  54. rop_proc(rop9) { r ~(T | (D ^ S)); }    /* TDSxon */
  55. rop_proc(rop10) { r D & ~T; }        /* DTna */
  56. rop_proc(rop11) { r ~(T | (S & ~D)); }    /* TSDnaon */
  57. rop_proc(rop12) { r S & ~T; }        /* STna */
  58. rop_proc(rop13) { r ~(T | (D & ~S)); }    /* TDSnaon */
  59. rop_proc(rop14) { r ~(T | (~(D | S))); }    /* TDSonon */
  60. rop_proc(rop15) { r ~T; }        /* Tn */
  61. rop_proc(rop16) { r T & (~(D | S)); }    /* TDSona */
  62. rop_proc(rop17) { r ~(D | S); }    /* DSon */
  63. rop_proc(rop18) { r ~(S | (~(D ^ T))); }    /* SDTxnon */
  64. rop_proc(rop19) { r ~(S | (D & T)); }    /* SDTaon */
  65. rop_proc(rop20) { r ~(D | ~(T ^ S)); }    /* DTSxnon */
  66. rop_proc(rop21) { r ~(D | (T & S)); }        /* DTSaon */
  67. rop_proc(rop22) { r (T ^ (S ^ (D & ~(T & S)))); }    /* TSDTSanaxx */
  68. rop_proc(rop23) { r ~(S ^ ((S ^ T) & (D ^ S))); }    /* SSTxDSxaxn */
  69. rop_proc(rop24) { r (S ^ T) & (T ^ D); }    /* STxTDxa */
  70. rop_proc(rop25) { r ~(S ^ (D & ~(T & S))); }    /* SDTSanaxn */
  71. rop_proc(rop26) { r T ^ (D | (S & T)); }    /* TDSTaox */
  72. rop_proc(rop27) { r ~(S ^ (D & (T ^ S))); }    /* SDTSxaxn */
  73. rop_proc(rop28) { r T ^ (S | (D & T)); }    /* TSDTaox */
  74. rop_proc(rop29) { r ~(D ^ (S & (T ^ D))); }    /* DSTDxaxn */
  75. rop_proc(rop30) { r T ^ (D | S); }    /* TDSox */
  76. rop_proc(rop31) { r ~(T & (D | S)); }    /* TDSoan */
  77. rop_proc(rop32) { r D & (T & ~S); }    /* DTSnaa */
  78. rop_proc(rop33) { r ~(S | (D ^ T)); }    /* SDTxon */
  79. rop_proc(rop34) { r D & ~S; }        /* DSna */
  80. rop_proc(rop35) { r ~(S | (T & ~D)); }    /* STDnaon */
  81. rop_proc(rop36) { r (S ^ T) & (D ^ S); }    /* STxDSxa */
  82. rop_proc(rop37) { r ~(T ^ (D & ~(S & T))); }    /* TDSTanaxn */
  83. rop_proc(rop38) { r S ^ (D | (T & S)); }    /* SDTSaox */
  84. rop_proc(rop39) { r S ^ (D | ~(T ^ S)); }    /* SDTSxnox */
  85. rop_proc(rop40) { r D & (T ^ S); }    /* DTSxa */
  86. rop_proc(rop41) { r ~(T ^ (S ^ (D | (T & S)))); }    /* TSDTSaoxxn */
  87. rop_proc(rop42) { r D & ~(T & S); }    /* DTSana */
  88. rop_proc(rop43) { r ~x(a(x(D,T),x(T,S)),S) ; }    /* SSTxTDxaxn */
  89. rop_proc(rop44) { r (S ^ (T & (D | S))); }    /* STDSoax */
  90. rop_proc(rop45) { r T ^ (S | ~D); }        /* TSDnox */
  91. rop_proc(rop46) { r (T ^ (S | (D ^ T))); }    /* TSDTxox */
  92. rop_proc(rop47) { r ~(T & (S | ~D)); }    /* TSDnoan */
  93. rop_proc(rop48) { r T & ~S; }            /* TSna */
  94. rop_proc(rop49) { r ~(S | (D & ~T)); }    /* SDTnaon */
  95. rop_proc(rop50) { r S ^ (D | (T | S)); }    /* SDTSoox */
  96. rop_proc(rop51) { r ~S; }            /* Sn */
  97. rop_proc(rop52) { r S ^ (T |(D & S)); }    /* STDSaox */
  98. rop_proc(rop53) { r S ^ (T | ~(D ^ S)); }    /* STDSxnox */
  99. rop_proc(rop54) { r S ^ (D | T); }        /* SDTox */
  100. rop_proc(rop55) { r ~(S & (D | T)); }        /* SDToan */
  101. rop_proc(rop56) { r T ^ (S & (D | T)); }    /* TSDToax */
  102. rop_proc(rop57) { r S ^ (T | ~D); }        /* STDnox */
  103. rop_proc(rop58) { r S ^ (T | (D ^ S)); }    /* STDSxox */
  104. rop_proc(rop59) { r ~(S & (T | ~D)); }    /* STDnoan */
  105. rop_proc(rop60) { r T ^ S; }            /* TSx */
  106. rop_proc(rop61) { r S ^ (T | ~(D | S)); }    /* STDSonox */
  107. rop_proc(rop62) { r S ^ (T | (D & ~S)); }    /* STDSnaox */
  108. rop_proc(rop63) { r ~(T & S); }    /* TSan */
  109. rop_proc(rop64) { r T & (S & ~D); }    /* TSDnaa */
  110. rop_proc(rop65) { r ~(D | (T ^ S)); }    /* DTSxon */
  111. rop_proc(rop66) { r (S ^ D) & (T ^ D); }    /* SDxTDxa */
  112. rop_proc(rop67) { r ~(S ^ (T & ~(D & S))); }    /* STDSanaxn */
  113. rop_proc(rop68) { r S & ~D; }    /* SDna */
  114. rop_proc(rop69) { r ~(D | (T & ~S)); }    /* DTSnaon */
  115. rop_proc(rop70) { r D ^ (S | (T & D)); }    /* DSTDaox */
  116. rop_proc(rop71) { r ~(T ^ (S & (D ^ T))); }    /* TSDTxaxn */
  117. rop_proc(rop72) { r S & (D ^ T); }    /* SDTxa */
  118. rop_proc(rop73) { r ~(T ^ (D ^ (S | (T & D)))); }    /* TDSTDaoxxn */
  119. rop_proc(rop74) { r D ^ (T & (S | D)); }    /* DTSDoax */
  120. rop_proc(rop75) { r T ^ (D | ~S); }    /* TDSnox */
  121. rop_proc(rop76) { r S & ~(D & T); }    /* SDTana */
  122. rop_proc(rop77) { r ~(S ^ ((S ^ T) | (D ^ S))); }    /* SSTxDSxoxn */
  123. rop_proc(rop78) { r T ^ (D | (S ^ T)); }    /* TDSTxox */
  124. rop_proc(rop79) { r ~(T & (D | ~S)); }    /* TDSnoan */
  125. rop_proc(rop80) { r T & ~D; }    /* TDna */
  126. rop_proc(rop81) { r ~(D | (S & ~T)); }    /* DSTnaon */
  127. rop_proc(rop82) { r D ^ (T | (S & D)); }    /* DTSDaox */
  128. rop_proc(rop83) { r ~(S ^ (T & (D ^ S))); }    /* STDSxaxn */
  129. rop_proc(rop84) { r ~(D | ~(T | S)); }    /* DTSonon */
  130. rop_proc(rop85) { r ~D; }    /* Dn */
  131. rop_proc(rop86) { r D ^ (T | S); }    /* DTSox */
  132. rop_proc(rop87) { r ~(D & (T | S)); }    /* DTSoan */
  133. rop_proc(rop88) { r T ^ (D & (S | T)); }    /* TDSToax */
  134. rop_proc(rop89) { r D ^ (T | ~S); }    /* DTSnox */
  135. rop_proc(rop90) { r D ^ T; }    /* DTx */
  136. rop_proc(rop91) { r D ^ (T | ~(S | D)); }    /* DTSDonox */
  137. rop_proc(rop92) { r D ^ (T | (S ^ D)); }    /* DTSDxox */
  138. rop_proc(rop93) { r ~(D & (T | ~S)); }    /* DTSnoan */
  139. rop_proc(rop94) { r D ^ (T | (S & ~D)); }    /* DTSDnaox */
  140. rop_proc(rop95) { r ~(D & T); }    /* DTan */
  141. rop_proc(rop96) { r T & (D ^ S); }    /* TDSxa */
  142. rop_proc(rop97) { r ~(D ^ (S ^ (T | (D & S)))); }    /* DSTDSaoxxn */
  143. rop_proc(rop98) { r D ^ (S & (T | D)); }    /* DSTDoax */
  144. rop_proc(rop99) { r S ^ (D | ~T); }    /* SDTnox */
  145. rop_proc(rop100) { r S ^ (D & (T | S)); }    /* SDTSoax */
  146. rop_proc(rop101) { r D ^ (S | ~T); }    /* DSTnox */
  147. rop_proc(rop102) { r D ^ S; }    /* DSx */
  148. rop_proc(rop103) { r S ^ (D | ~(T | S)); }    /* SDTSonox */
  149. rop_proc(rop104) { r ~(D ^ (S ^ (T | ~(D | S)))); }    /* DSTDSonoxxn */
  150. rop_proc(rop105) { r ~(T ^ (D ^ S)); }    /* TDSxxn */
  151. rop_proc(rop106) { r D ^ (T & S); }    /* DTSax */
  152. rop_proc(rop107) { r ~(T ^ (S ^ (D & (T | S)))); }    /* TSDTSoaxxn */
  153. rop_proc(rop108) { r (D & T) ^ S; }    /* SDTax */
  154. rop_proc(rop109) { r ~((((T | D) & S) ^ D) ^ T); }    /* TDSTDoaxxn */
  155. rop_proc(rop110) { r ((~S | T) & D) ^ S; }    /* SDTSnoax */
  156. rop_proc(rop111) { r ~(~(D ^ S) & T); }    /* TDSxnan */
  157. rop_proc(rop112) { r ~(D & S) & T; }    /* TDSana */
  158. rop_proc(rop113) { r ~(((S ^ D) & (T ^ D)) ^ S); }    /* SSDxTDxaxn */
  159. rop_proc(rop114) { r ((T ^ S) | D) ^ S; }    /* SDTSxox */
  160. rop_proc(rop115) { r ~((~T | D) & S); }    /* SDTnoan */
  161. rop_proc(rop116) { r ((T ^ D) | S) ^ D; }    /* DSTDxox */
  162. rop_proc(rop117) { r ~((~T | S) & D); }    /* DSTnoan */
  163. rop_proc(rop118) { r ((~S & T) | D) ^ S; }    /* SDTSnaox */
  164. rop_proc(rop119) { r ~(D & S); }    /* DSan */
  165. rop_proc(rop120) { r (D & S) ^ T; }    /* TDSax */
  166. rop_proc(rop121) { r ~((((D | S) & T) ^ S) ^ D); }    /* DSTDSoaxxn */
  167. rop_proc(rop122) { r ((~D | S) & T) ^ D; }    /* DTSDnoax */
  168. rop_proc(rop123) { r ~(~(D ^ T) & S); }    /* SDTxnan */
  169. rop_proc(rop124) { r ((~S | D) & T) ^ S; }    /* STDSnoax */
  170. rop_proc(rop125) { r ~(~(T ^ S) & D); }    /* DTSxnan */
  171. rop_proc(rop126) { r (S ^ T) | (D ^ S); }    /* STxDSxo */
  172. rop_proc(rop127) { r ~((T & S) & D); }    /* DTSaan */
  173. rop_proc(rop128) { r (T & S) & D; }    /* DTSaa */
  174. rop_proc(rop129) { r ~((S ^ T) | (D ^ S)); }    /* STxDSxon */
  175. rop_proc(rop130) { r ~(T ^ S) & D; }    /* DTSxna */
  176. rop_proc(rop131) { r ~(((~S | D) & T) ^ S); }    /* STDSnoaxn */
  177. rop_proc(rop132) { r ~(D ^ T) & S; }    /* SDTxna */
  178. rop_proc(rop133) { r ~(((~T | S) & D) ^ T); }    /* TDSTnoaxn */
  179. rop_proc(rop134) { r (((D | S) & T) ^ S) ^ D; }    /* DSTDSoaxx */
  180. rop_proc(rop135) { r ~((D & S) ^ T); }    /* TDSaxn */
  181. rop_proc(rop136) { r D & S; }    /* DSa */
  182. rop_proc(rop137) { r ~(((~S & T) | D) ^ S); }    /* SDTSnaoxn */
  183. rop_proc(rop138) { r (~T | S) & D; }    /* DSTnoa */
  184. rop_proc(rop139) { r ~(((T ^ D) | S) ^ D); }    /* DSTDxoxn */
  185. rop_proc(rop140) { r (~T | D) & S; }    /* SDTnoa */
  186. rop_proc(rop141) { r ~(((T ^ S) | D) ^ S); }    /* SDTSxoxn */
  187. rop_proc(rop142) { r ((S ^ D) & (T ^ D)) ^ S; }    /* SSDxTDxax */
  188. rop_proc(rop143) { r ~(~(D & S) & T); }    /* TDSanan */
  189. rop_proc(rop144) { r ~(D ^ S) & T; }    /* TDSxna */
  190. rop_proc(rop145) { r ~(((~S | T) & D) ^ S); }    /* SDTSnoaxn */
  191. rop_proc(rop146) { r (((D | T) & S) ^ T) ^ D; }    /* DTSDToaxx */
  192. rop_proc(rop147) { r ~((T & D) ^ S); }    /* STDaxn */
  193. rop_proc(rop148) { r (((T | S) & D) ^ S) ^ T; }    /* TSDTSoaxx */
  194. rop_proc(rop149) { r ~((T & S) ^ D); }    /* DTSaxn */
  195. rop_proc(rop150) { r (T ^ S) ^ D; }    /* DTSxx */
  196. rop_proc(rop151) { r ((~(T | S) | D) ^ S) ^ T; }    /* TSDTSonoxx */
  197. rop_proc(rop152) { r ~((~(T | S) | D) ^ S); }    /* SDTSonoxn */
  198. rop_proc(rop153) { r ~(D ^ S); }    /* DSxn */
  199. rop_proc(rop154) { r (~S & T) ^ D; }    /* DTSnax */
  200. rop_proc(rop155) { r ~(((T | S) & D) ^ S); }    /* SDTSoaxn */
  201. rop_proc(rop156) { r (~D & T) ^ S; }    /* STDnax */
  202. rop_proc(rop157) { r ~(((T | D) & S) ^ D); }    /* DSTDoaxn */
  203. rop_proc(rop158) { r (((D & S) | T) ^ S) ^ D; }    /* DSTDSaoxx */
  204. rop_proc(rop159) { r ~((D ^ S) & T); }    /* TDSxan */
  205. rop_proc(rop160) { r D & T; }    /* DTa */
  206. rop_proc(rop161) { r ~(((~T & S) | D) ^ T); }    /* TDSTnaoxn */
  207. rop_proc(rop162) { r (~S | T) & D; }                /* DTSnoa */
  208. rop_proc(rop163) { r ~(((D ^ S) | T) ^ D); }            /* DTSDxoxn */
  209. rop_proc(rop164) { r ~((~(T | S) | D) ^ T) ; }        /* TDSTonoxn */
  210. rop_proc(rop165) { r ~(D ^ T); }            /* TDxn */
  211. rop_proc(rop166) { r (~T & S) ^ D; }                /* DSTnax */
  212. rop_proc(rop167) { r ~(((T | S) & D) ^ T); }            /* TDSToaxn */
  213. rop_proc(rop168) { r ((S | T) & D); }                /* DTSoa */
  214. rop_proc(rop169) { r ~((S | T) ^ D); }            /* DTSoxn */
  215. rop_proc(rop170) { r D; }                /* D */
  216. rop_proc(rop171) { r ~(S | T) | D; }                /* DTSono */
  217. rop_proc(rop172) { r (((S ^ D) & T) ^ S); }            /* STDSxax */
  218. rop_proc(rop173) { r ~(((D & S) | T) ^ D); }            /* DTSDaoxn */
  219. rop_proc(rop174) { r (~T & S) | D; }            /* DSTnao */
  220. rop_proc(rop175) { r ~T | D; }            /* DTno */
  221. rop_proc(rop176) { r (~S | D) & T; }            /* TDSnoa */
  222. rop_proc(rop177) { r ~(((T ^ S) | D) ^ T) ; }            /* TDSTxoxn */
  223. rop_proc(rop178) { r ((S ^ D) | (S ^ T)) ^ S; }        /* SSTxDSxox */
  224. rop_proc(rop179) { r ~(~(T & D) & S); }            /* SDTanan */
  225. rop_proc(rop180) { r (~D & S) ^ T; }                /* TSDnax */
  226. rop_proc(rop181) { r ~(((D | S) & T) ^ D); }            /* DTSDoaxn */
  227. rop_proc(rop182) { r (((T & D) | S) ^ T) ^ D; }        /* DTSDTaoxx */
  228. rop_proc(rop183) { r ~((T ^ D) & S); }            /* SDTxan */
  229. rop_proc(rop184) { r ((T ^ D) & S) ^ T; }        /* TSDTxax */
  230. rop_proc(rop185) { r (~((D & T) | S) ^ D); }        /* DSTDaoxn */
  231. rop_proc(rop186) { r (~S & T) | D; }            /* DTSnao */
  232. rop_proc(rop187) { r ~S | D; }            /* DSno */
  233. rop_proc(rop188) { r (~(S & D) & T) ^ S; }        /* STDSanax */
  234. rop_proc(rop189) { r ~((D ^ T) & (D ^ S)); }        /* SDxTDxan */
  235. rop_proc(rop190) { r (S ^ T) | D; }            /* DTSxo */
  236. rop_proc(rop191) { r ~(S & T) | D; }            /* DTSano */
  237. rop_proc(rop192) { r T & S; }                /* TSa */
  238. rop_proc(rop193) { r ~(((~S & D) | T)^ S); }        /* STDSnaoxn */
  239. rop_proc(rop194) { r ~x(o(~o(S,D),T),S) ; }        /* STDSonoxn */
  240. rop_proc(rop195) { r ~(S ^ T); }            /* TSxn */
  241. rop_proc(rop196) { r ((~D | T) & S); }            /* STDnoa */
  242. rop_proc(rop197) { r ~(((S ^ D) | T) ^ S); }        /* STDSxoxn */
  243. rop_proc(rop198) { r ((~T & D) ^ S); }        /* SDTnax */
  244. rop_proc(rop199) { r ~(((T | D) & S) ^ T); }        /* TSDToaxn */
  245. rop_proc(rop200) { r ((T | D) & S); }        /* SDToa */
  246. rop_proc(rop201) { r ~((D | T) ^ S); }    /* STDoxn */
  247. rop_proc(rop202) { r ((D ^ S) & T) ^ D; }        /* DTSDxax */
  248. rop_proc(rop203) { r ~(((S & D) | T) ^ S); }        /* STDSaoxn */
  249. rop_proc(rop204) { r S; }        /* S */
  250. rop_proc(rop205) { r ~(T | D) | S; }        /* SDTono */
  251. rop_proc(rop206) { r (~T & D) | S; }        /* SDTnao */
  252. rop_proc(rop207) { r ~T | S; }        /* STno */
  253. rop_proc(rop208) { r (~D | S) & T; }        /* TSDnoa */
  254. rop_proc(rop209) { r ~(((T ^ D) | S) ^ T); }        /* TSDTxoxn */
  255. rop_proc(rop210) { r (~S & D) ^ T; }        /* TDSnax */
  256. rop_proc(rop211) { r ~(((S | D) & T) ^ S); }        /* STDSoaxn */
  257. rop_proc(rop212) { r x(a(x(D,T),x(T,S)),S) ; }    /* SSTxTDxax */
  258. rop_proc(rop213) { r ~(~(S & T) & D); }    /* DTSanan */
  259. rop_proc(rop214) { r ((((S & T) | D) ^ S) ^ T); }    /* TSDTS aoxx */
  260. rop_proc(rop215) { r ~((S ^ T) & D); }    /* DTS xan */ 
  261. rop_proc(rop216) { r ((T ^ S) & D) ^ T; }    /* TDST xax */
  262. rop_proc(rop217) { r ~(((S & T) | D) ^ S); }        /* SDTS aoxn */
  263. rop_proc(rop218) { r x(a(~a(D,S),T),D) ; }    /* DTSD anax */
  264. rop_proc(rop219) { r ~a(x(S,D),x(T,S)) ; }        /* STxDSxan */
  265. rop_proc(rop220) { r (~D & T) | S; }    /* STD nao */
  266. rop_proc(rop221) { r ~D | S; }    /* SDno */
  267. rop_proc(rop222) { r (T ^ D) | S; }    /* SDT xo */
  268. rop_proc(rop223) { r (~(T & D)) | S; }    /* SDT ano */
  269. rop_proc(rop224) { r ((S | D) & T); }        /* TDS oa */
  270. rop_proc(rop225) { r ~((S | D) ^ T); }    /*  TDS oxn */
  271. rop_proc(rop226) { r (((D ^ T) & S) ^ D); }    /* DSTD xax */
  272. rop_proc(rop227) { r ~(((T & D) | S) ^ T); }    /* TSDT aoxn */
  273. rop_proc(rop228) { r ((S ^ T) & D) ^ S; }    /* SDTSxax */
  274. rop_proc(rop229) { r ~(((T & S) | D) ^ T); }        /* TDST aoxn */
  275. rop_proc(rop230) { r (~(S & T) & D) ^ S; }        /* SDTSanax */
  276. rop_proc(rop231) { r ~a(x(D,T),x(T,S)) ; }    /* STxTDxan */
  277. rop_proc(rop232) { r x(a(x(S,D),x(T,S)),S) ; }    /* SS TxD Sxax */
  278. rop_proc(rop233) { r ~x(x(a(~a(S,D),T),S),D) ; }    /* DST DSan axxn   */
  279. rop_proc(rop234) { r (S & T) | D; }        /* DTSao */
  280. rop_proc(rop235) { r ~(S ^ T) | D; }        /* DTSxno */
  281. rop_proc(rop236) { r (T & D) | S; }        /* SDTao */
  282. rop_proc(rop237) { r ~(T ^ D) | S; }        /* SDTxno */
  283. rop_proc(rop238) { r S | D; }        /* DSo */
  284. rop_proc(rop239) { r (~T | D) | S; }        /* SDTnoo */
  285. rop_proc(rop240) { r T; }        /* T */
  286. rop_proc(rop241) { r ~(S | D) | T; }        /* TDSono */
  287. rop_proc(rop242) { r (~S & D) | T; }        /* TDSnao */
  288. rop_proc(rop243) { r ~S | T; }        /* TSno */
  289. rop_proc(rop244) { r (~D & S) | T; }        /* TSDnao */
  290. rop_proc(rop245) { r ~D | T; }        /* TDno */
  291. rop_proc(rop246) { r (S ^ D) | T; }        /* TDSxo */
  292. rop_proc(rop247) { r ~ (S & D) | T; }        /* TDSano */
  293. rop_proc(rop248) { r (S & D) | T; }        /* TDSao */
  294. rop_proc(rop249) { r ~ (S ^ D) | T; }        /* TDSxno */
  295. rop_proc(rop250) { r D | T; }        /* DTo */
  296. rop_proc(rop251) { r (~S | T) | D; }        /* DTSnoo */
  297. rop_proc(rop252) { r S | T; }        /* TSo */
  298. rop_proc(rop253) { r (~D | S) | T; }    /* TSDnoo */
  299. rop_proc(rop254) { r S | T | D; }    /* DTSoo */
  300. rop_proc(rop255) { r ~(rop_operand)0; }    /* 1 */
  301.  
  302. #undef rop_proc
  303. const far_data rop_proc rop_proc_tab[256] =
  304. {
  305.   rop0, rop1, rop2, rop3, rop4, rop5, rop6, rop7,
  306.   rop8, rop9, rop10, rop11, rop12, rop13, rop14, rop15,
  307.   rop16, rop17, rop18, rop19, rop20, rop21, rop22, rop23,
  308.   rop24, rop25, rop26, rop27, rop28, rop29, rop30, rop31,
  309.   rop32, rop33, rop34, rop35, rop36, rop37, rop38, rop39,
  310.   rop40, rop41, rop42, rop43, rop44, rop45, rop46, rop47,
  311.   rop48, rop49, rop50, rop51, rop52, rop53, rop54, rop55,
  312.   rop56, rop57, rop58, rop59, rop60, rop61, rop62, rop63,
  313.   rop64, rop65, rop66, rop67, rop68, rop69, rop70, rop71,
  314.   rop72, rop73, rop74, rop75, rop76, rop77, rop78, rop79,
  315.   rop80, rop81, rop82, rop83, rop84, rop85, rop86, rop87,
  316.   rop88, rop89, rop90, rop91, rop92, rop93, rop94, rop95,
  317.   rop96, rop97, rop98, rop99, rop100, rop101, rop102, rop103,
  318.   rop104, rop105, rop106, rop107, rop108, rop109, rop110, rop111,
  319.   rop112, rop113, rop114, rop115, rop116, rop117, rop118, rop119,
  320.   rop120, rop121, rop122, rop123, rop124, rop125, rop126, rop127,
  321.   rop128, rop129, rop130, rop131, rop132, rop133, rop134, rop135,
  322.   rop136, rop137, rop138, rop139, rop140, rop141, rop142, rop143,
  323.   rop144, rop145, rop146, rop147, rop148, rop149, rop150, rop151,
  324.   rop152, rop153, rop154, rop155, rop156, rop157, rop158, rop159,
  325.   rop160, rop161, rop162, rop163, rop164, rop165, rop166, rop167,
  326.   rop168, rop169, rop170, rop171, rop172, rop173, rop174, rop175,
  327.   rop176, rop177, rop178, rop179, rop180, rop181, rop182, rop183,
  328.   rop184, rop185, rop186, rop187, rop188, rop189, rop190, rop191,
  329.   rop192, rop193, rop194, rop195, rop196, rop197, rop198, rop199,
  330.   rop200, rop201, rop202, rop203, rop204, rop205, rop206, rop207,
  331.   rop208, rop209, rop210, rop211, rop212, rop213, rop214, rop215,
  332.   rop216, rop217, rop218, rop219, rop220, rop221, rop222, rop223,
  333.   rop224, rop225, rop226, rop227, rop228, rop229, rop230, rop231,
  334.   rop232, rop233, rop234, rop235, rop236, rop237, rop238, rop239,
  335.   rop240, rop241, rop242, rop243, rop244, rop245, rop246, rop247,
  336.   rop248, rop249, rop250, rop251, rop252, rop253, rop254, rop255
  337. };
  338.